As is known, many varieties of memory storage devices (e.g. disk drives), such as magnetic disk drives are used to provide data storage for a host device, either directly, or through a network such as a storage area network (SAN) or network attached storage (NAS). Typical host devices include stand alone computer systems such as a desktop or laptop computer, enterprise storage devices such as servers, storage arrays such as a redundant array of independent disks (RAID) arrays, storage routers, storage switches and storage directors, and other consumer devices such as video game systems and digital video recorders. These devices provide high storage capacity in a cost effective manner.
The structure and operation of hard disk drives is generally known. Hard disk drives include, generally, a case, a hard disk having magnetically alterable properties, and a read/write mechanism including Read/Write (RW) heads operable to write data to the hard disk by locally alerting the magnetic properties of the hard disk and to read data from the hard disk by reading local magnetic properties of the hard disk. The hard disk may include multiple platters, each platter being a planar disk.
All information stored on the hard disk is recorded in tracks, which are concentric circles organized on the surface of the platters. FIG. 1 depicts a pattern of radially-spaced concentric data tracks 12 within a disk 10. Data stored on the disks may be accessed by moving RW heads radially as driven by a head actuator to the radial location of the track containing the data. To efficiently and quickly access this data, fine control of RW hard positioning is required. The track-based organization of data on the hard disk(s) allows for easy access to any part of the disk, which is why hard disk drives are called “random access” storage devices.
Since each track typically holds many thousands of bytes of data, the tracks are further divided into smaller units called sectors. This reduces the amount of space wasted by small files. Each sector holds 512 bytes of user data, plus as many as a few dozen additional bytes used for internal drive control and for error detection and correction.
Within such hard disk drives (HDDs), disk drive controllers control the various processes associated with the read/write of data to the physical media. As to the complexity of these disk drive controllers continues to increase, better debugging tools are required to improve the operation and design of the disk drive controller. One technology that may be used to address these issues is hardware trace data, which can be used to easily track operations within embedded systems. Trace data may be presented to an external system to track down or monitor operations within a processor such as the disk drive controller. This hardware trace is useful for addressing a wide variety of issues associated with embedded systems. This is because embedded systems often involve meeting critical timing requirements. A dedicated trace port allows external analysis of the execution of processes within the embedded processor. However, as trace analysis tools improve, more information and more embedded trace systems may be incorporated within the embedded system. Thus the trace port can become a bottleneck associated with retrieving this data.